﻿using System.Collections.Generic;
using System.Linq;
using Neptuno.Model;

namespace Neptuno.Component
{
    public class TerminalesComponent : BaseComponent
    {
        public bool AgregarTerminal(Terminales Terminal)
        {
            Terminal.habilitado = true;
            List<Terminales> Terminales = new List<Model.Terminales>();
            Context.Terminales.AddObject(Terminal);

            return Context.TryToSave();
        }

        public bool Borrar(int idTerminal)
        {
            Terminales Terminal = Context.Terminales.Single(t => t.idTerminal == idTerminal);
            Terminal.habilitado = false;
            return Context.TryToSave();
        }

        public bool Habilitar(int idTerminal)
        {
            Terminales Terminal = Context.Terminales.Single(t => t.idTerminal == idTerminal);
            Terminal.habilitado = true;
            return Context.TryToSave();
        }

        public List<Terminales> Listar(bool habilitado)
        {
            List<Terminales> Lista = Context.Terminales.Where(t => t.habilitado == habilitado).ToList();
            return Lista;
        }

        public List<Terminales> Listar(string idPuerto)
        {
            List<Terminales> Lista = Context.Terminales.Where(t => t.habilitado == true && t.idPuerto == idPuerto).ToList();
            return Lista;
        }

        public Terminales GetById(int idTerminal)
        {
            return Context.Terminales.SingleOrDefault(t => t.idTerminal == idTerminal);
        }

        public bool Actualizar(Terminales Terminal)
        {
            if (Terminal.idTerminal != 0)
            {
                Terminales myTerminal = Context.Terminales.SingleOrDefault(t => t.idTerminal == Terminal.idTerminal);
                myTerminal.nombre = Terminal.nombre;
                myTerminal.idPuerto = Terminal.idPuerto;

                return Context.TryToSave();
            }
            else
                return true;
        }
    }
}
